import { defineStore } from "pinia";
import { useWorkBenches, useWorkBenches } from '@/store';
import WS from '@/utils/websocket';
import message from "@/utils/message";
// import { showSuccessToast  } from 'vant';

export const useWebstock= defineStore('webstock',{
	state: () => {
	  return {
		  // currentUser:{},
		  // workerPatientList:[],
	  }
	},
	actions: {
		sendMessage(data){
			// const { info } = data;
			// console.log(data;, "发送消息");
			// this.currentUser = info;
			// { messageCode:'3',userId: data.id }//
			WS.sendSock(JSON.stringify(data), this.getConfigResult);
			// console.log(res);
			return true;
		},
		async webSocketClose(){
			WS.webSocketClose();
		},
		async  getConfigResult(res: any, obj: any = {}) { //服务端返回的数据
			const { resultCode,messageData } = res;
			switch(resultCode){
				case '202':{ // 添加
					// useWorkBenches().getList(true);
					// this.workerPatientList.push(this.currentUser);
					// console.log(this.currentUser);
					useWorkBenches().isRouterFn();
				}break;
				case '205':{ // 举手
					useWorkBenches().changePatientList(res);
				}break;
				case '204':{ // 用户提交答案
					useWorkBenches().submitList(res);
				};break;
				case '100':{ // 刚连接上的数据返回
					useWorkBenches().setworkAsideList(JSON.parse(res.messageData));
				};break;
				case '206':{ //返回当前患者的答题界面
					if(messageData != ''){
						// console.log(JSON.parse(messageData));
						// return JSON.parse(messageData);
						useWorkBenches().setCurrentQuest(JSON.parse(messageData));
					}
					// console.log(res)
					// useWorkBenches().setworkAsideList(JSON.parse(res.messageData));
				};break;
				case '207':{ //批改答案成功返回
					// const { messageData } = res;
					if(messageData < 0){
						const currentId = localStorage.getItem('currentId');
						message.success('该患者答题已完成');
						this.sendMessage({ messageCode:'3',userId:currentId });
						const out = setTimeout(()=>{
							window.location.replace("/test");
							clearTimeout(out);
						}, 500)
					}else{
						message.success(messageData);
						useWorkBenches().getstep();
					}
				};break;
				case '208':{
					useWorkBenches().setInstvisible(false);
				};break;
				case '500':{ 
					message.error(messageData);
					return false;
				};break;
				default:console.log(1);
			}
		},
		async connWebstock(){ //
			WS.initWebSocket(import.meta.env.VITE_BASE_URL_WS, this.getConfigResult);
		},
	},
	getters: {
	},
});